﻿Imports System.IO

Public Class CLS_SRM_FILE_FTP
    Inherits CLS_FILE_FTP

    Public Sub IniciaProceso(ByRef rp As DotNetResponse.SQLPersistence, ByVal Id_Task As Integer)
        'SP_TASK_GET_SRM_QRY_FILE
        Try
            Dim EXEC As New DotNetDAL.SQLPersistence(False, "cnn", DotNetDAL.SQLPersistence.Provider.SQLCLIENT)
            rp.StoredProcedure = "SP_TASK_GET_SRM_QRY_FILE"
            rp.AddParametro(Id_Task)
            EXEC.ExecuteDatatable(rp)

            If rp.Errores Then
                rp.AddErrores(rp.MensajeError)
            End If

            If rp.TieneDatos Then
                'Llarmar al SRM y pasarle la QUERY
                Dim MiSRM As New SRM.SRMDataTable

                Try
                    With MiSRM
                        Dim Archivo As String = String.Empty

                        .Nodo = rp.DtTable.Rows(0).Item("S_SRM_NODO").ToString
                        .Aplicacion = rp.DtTable.Rows(0).Item("S_SRM_APLICACION").ToString
                        .Base = rp.DtTable.Rows(0).Item("S_SRM_BASE_DATO").ToString
                        .FixMsjQuery = "b12256781234W"
                        .Mensaje = rp.DtTable.Rows(0).Item("S_QUERY").ToString
                        If (.Invocar) Then
                            Try
                                Archivo = My.Computer.FileSystem.GetTempFileName.ToString
                            Catch ex As Exception
                                rp.AddErrores("Error al crear archivo para interfaz : " & .Mensaje)
                            End Try

                            Try
                                Dim I As Integer
                                Dim J As Integer
                                Dim objWriter As New System.IO.StreamWriter(Archivo, True)
                                For I = 0 To MiSRM.Respuesta.Rows.Count - 1
                                    Dim fila As String = ""

                                    For J = 0 To MiSRM.Respuesta.Columns.Count - 1
                                        fila = fila & MiSRM.Respuesta.Rows(I).Item(J) & vbTab
                                    Next

                                    objWriter.WriteLine(fila & vbCrLf)
                                Next

                                objWriter.Close()

                                Try
                                    'ruta respaldo
                                    Dim Servidor As String = rp.DtTable.Rows(0).Item("S_IP_SERVIDOR").ToString
                                    Dim Usuario As String = rp.DtTable.Rows(0).Item("S_USR_SERVIDOR").ToString
                                    Dim Clave As String = rp.DtTable.Rows(0).Item("S_PW_SERVIDOR").ToString
                                    Dim RutaRespaldo As String = rp.DtTable.Rows(0).Item("S_RUTA_RESPALDO").ToString
                                    Dim ArchivoSalida As String = rp.DtTable.Rows(0).Item("S_NOMBRE_ARCHIVO_SALIDA").ToString

                                    'FTP
                                    If Left(Servidor, 3).ToUpper = "FTP" Then
                                        DotNetDAL.FTP.DeleteFtp(Archivo, Servidor, ArchivoSalida, Clave, Usuario)
                                        DotNetDAL.FTP.SendFTP(rp, Archivo, Servidor, ArchivoSalida, Clave, Usuario)
                                    Else
                                        'Folder de red
                                        If Right(Servidor, 2).ToUpper = "\\" Then
                                            CopiarEnRecursoRed(Usuario, Clave, Archivo, Servidor & "\" & ArchivoSalida)
                                        Else
                                            'Folder en el mismo equipo
                                            File.Copy(Archivo, Servidor & "\" & ArchivoSalida, True)
                                        End If
                                    End If

                                    'Folder de red
                                    If Right(RutaRespaldo, 2).ToUpper = "\\" Then
                                        CopiarEnRecursoRed(Usuario, Clave, Archivo, RutaRespaldo & ArchivoSalida)
                                    Else
                                        'Folder en el mismo equipo
                                        File.Copy(Archivo, RutaRespaldo & ArchivoSalida, True)
                                    End If

                                Catch ex As Exception
                                    rp.AddErrores("Error al cargar archivo de interfaz : " & .Mensaje)
                                End Try

                            Catch ex As Exception
                                rp.AddErrores("Error al cargar archivo de interfaz : " & .Mensaje)
                            End Try
                        Else
                            rp.AddErrores("Error al Invocar SRM : " & .Mensaje)
                        End If
                    End With
                Catch ex As Exception
                    rp.AddErrores("Error al Invocar SRM : " & ex.Message)
                    Return
                End Try
            End If
        Catch ex As Exception
            rp.AddErrores(ex.Message)
        End Try
    End Sub
End Class